/**
 * 
 */
package com.mareas.web.service.impl;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;

import org.springframework.stereotype.Service;

import com.mareas.web.dao.Dao;
import com.mareas.web.model.Proforma;
import com.mareas.web.model.integration.InformeProformaDTO;
import com.mareas.web.service.InformeProformaService;

/**
 * @author victor
 *
 */
@Service
@ManagedBean
@ApplicationScoped
public class InformeProformaServiceImpl implements InformeProformaService {
	
	private Dao dao;
	
	
	public Dao getDao() {
		return dao;
	}

	public void setDao(Dao dao) {
		this.dao = dao;
	}
	
	/* (non-Javadoc)
	 * @see com.mareas.web.service.InformeProformaService#obtenerListadoProforma()
	 */
	public List<InformeProformaDTO> getListadoProforma() {
		List<Proforma> listadoProformas = dao.find(Proforma.class);
		List<InformeProformaDTO> informeProforma = new ArrayList<InformeProformaDTO>();
		if (!listadoProformas.isEmpty()){			
			for (Proforma proforma : listadoProformas) {
				//Si esta en estado cerrada la agrego
				if(proforma.getOperacion().getOperacionEstado().equals(new Integer(1))){
					InformeProformaDTO proformaDTO = new InformeProformaDTO();
					proformaDTO.setProformaId(proforma.getProformaId());
					proformaDTO.setOperacionId(proforma.getOperacion().getOperacionId());
					proformaDTO.setProformaPrecioTotal(proforma.getProformaPrecioTotal());
					proformaDTO.setOperacionCostoTotal(proforma.getOperacion().getOperacionCostoTotal());
					if (proforma.getOperacion().getOperacionCostoTotal()==null){
						proforma.getOperacion().setOperacionCostoTotal(new BigDecimal(0).setScale(2));
					}
					proformaDTO.setDiferenciaCostos(proforma.getOperacion().getOperacionCostoTotal().subtract(proforma.getProformaPrecioTotal()).setScale(2));
					informeProforma.add(proformaDTO);
				}
			}			
		}
		return informeProforma;
	}

}
